//问题数据相关的类型
export interface Answer {
    id: number,
    title: string,
    userId: number,
    nickname: string,
    avatar: string,
    views: number,
    likeCount: number,
    reply: number,
    solve: string,
    createTime: Date,
    updateTime: Date,
    isLike: number,
}

//点赞所需的参数
export interface GiveALike {
    userId: number,
    problemId: number
}

//上传问题所需的参数
export interface UploadProblem {
    title: string,
    userId: number,
    nickname: string,
    avatar: string
}

//一级评论所需的参数
export interface Reply {
    problemId: number,
    content: string,
    userId: number,
    nickname: string,
    avatar: string
}

//评论数据相关的类型
export interface Comments {
    id: number,
    problemId: number,
    content: string,
    userId: number,
    nickname: string,
    avatar: string,
    likeCount: number,
    isTop: number,
    createTime: Date,
    isLike: number,
    secondReplyList: Array<SecondComments>
}

//二级评论数据相关的类型
export interface SecondComments {
    id: number,
    problemId: number,
    firstId: number,
    secondUserId: number,
    secondOneNickname: string,
    secondOneAvatar: string,
    secondTwoUserId: number,
    secondTwoNickname: string,
    secondTwoAvatar: string,
    content: string,
    createTime: Date,
    isRead: number
}

//评论点赞所需的参数
export interface ReplyGiveALikeParams {
    problemId: number,
    parentId: number,
    userId: number
}

//用户回复点赞列表参数类型
export interface ReplyGiveALike {
    id: number,
    problemId: number,
    parentId: number,
    userId: number,
    isLike: number,
    isRead: number,
    createTime: Date
}

//二级评论点赞所需的参数
export interface SecondReplyParams {
    problemId: number,
    firstId: number,
    secondUserId: number,
    secondOneNickname: string,
    secondOneAvatar: string,
    secondTwoUserId: number,
    secondTwoNickname: string,
    secondTwoAvatar: string,
    content: string,
}

//保存用户浏览问题记录所需的参数
export interface Browse {
    userId: number,
    problemId: number
}

//全文检索所需的参数类型
export interface RequestParams {
    key: string,
    page: number,
    size: number,
    sortBy: string
}

//邀请用户回答问题需要的参数类型
export interface Invite {
    recipient: number,
    inviter: number,
    problemId: number
}

//用户举报问题需要的参数类型
export interface Report {
    userId: number,
    problemId: number,
    content: string
}